#pragma once

#include "Mesh.h"

class FnTagging
{
public:
	FnTagging(Mesh& _mesh);
	~FnTagging(void);

  const Mesh& mesh() const        { return  mesh_; }
  Mesh& mesh()                    { return  mesh_; }

  void  tagging(const std::string& _tag_filename, const std::string& _avm_filename);
  

protected:
	unsigned int get_hfhandles(OpenVolMesh::CellHandle _ch,
		std::vector<OpenVolMesh::HalffaceHandle>& _hfhandles) const
  {
    unsigned int count(0);
    _hfhandles.clear();
    for (Mesh::ConstCellIHalffaceIter ccihf_it=mesh_.ccihf_iter(_ch); ccihf_it; ++ccihf_it)
    {
      _hfhandles.push_back(ccihf_it.handle());
      ++count;
    }
    return count;
  }

private:
  Mesh&   mesh_;
};
